package org.demo.config;

import com.baomidou.mybatisplus.core.MybatisPlusVersion;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

/**
 * 增加对 plus 3.4.3 框架版本的测试，若为3.4.3，则选择不注入join框架的Service，从而不影响其他内容的测试
 *
 * @author yexi
 */
public class FrameworkVersionCondition implements Condition {

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        // 获取框架的实现版本号
        String frameworkVersion = this.getFrameworkVersion();
        // 判断框架版本是否满足条件
        return frameworkVersion != null && this.isNotVersionValid(frameworkVersion, "3.4.3");
    }

    private String getFrameworkVersion() {
        return MybatisPlusVersion.getVersion();
    }

    private boolean isNotVersionValid(String currentVersion, String targetVersion) {
        // 版本判断逻辑，这里仅作示例，比较字符串版本号
        return !currentVersion.equals(targetVersion);
    }

}
